function n_times
%=============================================================
% Configuracion

%USAR = 'tomates';   % descomentar ésta variable para utilizar el archivo de datos de tomates.
USAR = 'iris';      % descomentar ésta variable para utilizar el archivo de datos de las plantas de iris.


% INICIO y FIN, indican la raiz cuadrada de la cantidad 
% de cluster/neuronas necearios para ejecutar los algoritmos.
if strcmp('iris', USAR)
  % Vamos a usar los datos de la planta de iris para ver
  tomate_filename = './data/iris.data2';
  INICIO = 2;
  FIN = 10;
  sData = som_read_data(tomate_filename);
elseif strcmp(USAR, 'tomates')
  tomate_filename = './data/tomate.data'
  INICIO = 10;
  FIN = 25;
  sData = cargar_unicamente_directos(tomate_filename);
  %sData = cargar_todos(tomate_filename);
end

% Fracciones a utilizar para ejecutar el muestreo y agrupamiento.
%FS = [0.7 0.8 0.9];
FS = [1 0.8];

% Cantidad de veces a ejecutar el muestreo y agrupamiento, y poder sacar un promedio.
R = 3;

% FIN DE LA CONFIGURACION
%===================================================================

titulo = [USAR ' ' num2str(INICIO) '-' num2str(FIN) ' (' num2str(R) ' Repeticiones)'];
file_name = ['data/' titulo ];

% Crear los archivos para kMean y Som.
file_wkmean = fopen([file_name 'wKmean.txt'], 'w');
file_wsom = fopen([file_name 'wSom.txt'], 'w');
%r file_total = fopen([file_name 'total.txt'], 'w');

tic;
plot_vect = zeros(FIN-INICIO, 2);
    disp('*********************************************');
    disp(['Corriendo para una fraccion: ' num2str(FS(1)) '-' num2str(FS(2)) ' de los datos']);

    % Grabamos en el archivo, para la fraccion de datos que vamos a ejecutar.
    fprintf(file_wkmean, 'Para f = %.2fx%.2f\n', FS(1), FS(2));
    fprintf(file_wsom, 'Para f = %.2fx%.2f\n', FS(1), FS(2));

    tiempo_comienzo = tic;  % para medir cuanto tarda más o menos todo el proceso.
    for i = INICIO:FIN
        % Por cada ciclo,s e ejecuta una vez cada algoritmo de agrupamiento. Luego, se calcula el
        % valor de del índice de Fowlkes and Mallows sobre dicho método de agrupamiento.
        %   Primero wKmean.
        %   Segundo wSom con inicialización random
        %   Tercero wSom con inicializacion lininit
        
        temp = muestreo_agrupamiento(sData, FS, R, @wKmean, i*i);
        promedio = sum(temp)/length(temp);
        fprintf(file_wkmean, 'Para cluster: %dx%d valor: %.2f\n', i, i, promedio);

        %fprintf(file_total, 'Para cluster: %dx%d valor: %.2f\n', i, i, promedio);
        %fprintf(file_total, '...\n\n');
    
%         temp = muestreo_agrupamiento(sData, FS(f), R, @wSomRandom, i*i);
%         promedio = sum(temp)/length(temp);
%         fprintf(file_wsom, 'Para cluster(randinit): %2dx%2d valor: %.2f\n', i, i, promedio);

        temp = muestreo_agrupamiento(sData, FS, R, @wSomLininit, i*i);
        promedio = sum(temp)/length(temp);

        fprintf(file_wsom, 'Para cluster(lininit): %dx%d valor: %.2f\n', i, i, promedio);
        %d fprintf(file_total, 'Para cluster(lininit): %dx%d valor: %.2f\n', i, i, promedio);
        %fprintf(file_total, '+++\n\n');
    end

    tiempo_ocupado = toc(tiempo_comienzo);
    fprintf(file_wkmean, 'Tiempo empleado: %f segundos\n\n', tiempo_ocupado);
    fprintf(file_wsom, 'Tiempo empleado: %f segundos\n\n', tiempo_ocupado);

%r fclose(file_total);
fclose(file_wkmean);
fclose(file_wsom);

end

